---
title: SOAP service documentation
summary: Entry point for the WCF host that publishes FileService, PreferenceService, WebContext, Imaging, Fax, and Security.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-22
---

# SOAP service documentation

`SAIF.Services.WCF.Host` is a .NET Framework 4.6.2 WCF SOAP host that publishes six independent services — `FileService`, `PreferenceService`, `WebContextService`, `ImagingService`, `FaxService`, and `Security.SecurityService` — over route-based activation, backed by Oracle (`CLM`, `IMG`, `EXTUR`) and SQL Server (`NETFRAMEWORK`/`APPM`) via NHibernate.

| Field | Value |
| --- | --- |
| **Host project** | `SAIF.Services.WCF.Host` (`WCF.csproj`) |
| **Framework** | WCF (`System.ServiceModel`), .NET Framework 4.6.2 |
| **Host** | IIS — `Global.asax` : `System.Web.HttpApplication` |
| **Activation** | Route-based (`ServiceRoute` + `ServiceHostFactory` in `Application_Start`) — no `.svc` file exists anywhere in this host |
| **Activation source** | `src/WCF/SAIF.Services.WCF.Host/Global.asax.cs` |
| **Service classes** | 6 |
| **Contract assembly** | `SAIF.Services.WCF.Contracts` — external, arriving transitively via `SAIF.Framework.Core` * |
| **ASP.NET compatibility** | `[AspNetCompatibilityRequirements(RequirementsMode = Allowed)]` on all six service classes |
| **Service behaviors** | `[LogErrorBehavior]` on all six service classes |
| **Metadata publication** | `<serviceMetadata httpGetEnabled="true"/>` — WSDL retrievable per route |
| **Deployment variants** | Internal (`Release` / `app-internal`) and External (`ReleaseExternal` / `app-external`) |

## Documentation sections

| Section | Description |
| --- | --- |
| [Overview](overview.md) | Purpose, business context, and capability summary |
| [Architecture](architecture.md) | Layering, dispatch path, composition root, and integration points |
| [Activation and hosting](activation-hosting.md) | Route registrations, host inventory, and deployment variants |
| [Operations](operations.md) | Operation catalog with per-contract detail pages |
| [Faults and error pipeline](faults.md) | Fault contracts, error handlers, and what a caller receives |
| [Authentication and authorization](authentication-authorization.md) | Identity, authorization enforcement, and role requirements |
| [Dependencies](dependencies.md) | Libraries, packages, services, and database connections |
| [Configuration](configuration.md) | Runtime-resolved configuration and the Web.config surface |
| [Operations and processes](operations-processes.md) | End-to-end processing workflows behind the operations |
| [Business rules](business-rules.md) | Rules enforced during message processing |
| [Data model](data-model.md) | Persistence model, entity mappings, and stored procedure usage |
| [Operational runbook](operational-runbook.md) | Deployment, health checks, logs, faults, error recovery |
| [Tech debt](tech-debt.md) | CRITICAL and HIGH severity findings |

## Service classes

| Service class | Route | Operations | Also hosted in | Documentation |
| --- | --- | --- | --- | --- |
| `SAIF.Services.WCF.Services.FileService` | `FileService` | 5 | — | [Docs](contracts/file-service.md) |
| `SAIF.Services.WCF.Services.PreferenceService` | `PreferenceService` | 3 | — | [Docs](contracts/preference-service.md) |
| `SAIF.Services.WCF.Services.WebContextService` | `WebContext` | 3 | — | [Docs](contracts/web-context-service.md) |
| `SAIF.Services.WCF.Services.ImagingService` | `Imaging` | 2 | `SAIF.Services.WCF32.Host` (a *different* `ImagingService` implementation; not documented — see [Tech debt](tech-debt.md)) | [Docs](contracts/imaging-service.md) |
| `SAIF.Services.WCF.Services.FaxService` | `Fax` | 1 | — | [Docs](contracts/fax-service.md) |
| `SAIF.Services.WCF.Services.Security.SecurityService` | `Security` | 10 | — | [Docs](contracts/security-service.md) |

## Consumed SOAP proxies

| Proxy | Mechanism | Documentation |
| --- | --- | --- |
| `Legacy.Fax` | Service Reference (`FaxServiceSoapClient`) | [Docs](../../clients/legacy-fax/index.md) |

## Operation catalog

This host publishes 24 operations across the six service classes above; each links to its process-detail page under `operations/`.

| Process ID | Operation | Service class | Process page |
| --- | --- | --- | --- |
| OP-001 | `ReadFile` | `FileService` | [Docs](operations/file-readfile.md) |
| OP-002 | `ReadEntireFile` | `FileService` | [Docs](operations/file-readentirefile.md) |
| OP-003 | `WriteFile` | `FileService` | [Docs](operations/file-writefile.md) |
| OP-004 | `DeleteFile` | `FileService` | [Docs](operations/file-deletefile.md) |
| OP-005 | `Length` | `FileService` | [Docs](operations/file-length.md) |
| OP-006 | `GetPreferences` | `PreferenceService` | [Docs](operations/preference-getpreferences.md) |
| OP-007 | `SavePreferences` | `PreferenceService` | [Docs](operations/preference-savepreferences.md) |
| OP-008 | `GetDefaultPrinter` | `PreferenceService` | [Docs](operations/preference-getdefaultprinter.md) |
| OP-009 | `Get` | `WebContextService` | [Docs](operations/web-context-get.md) |
| OP-010 | `Save` | `WebContextService` | [Docs](operations/web-context-save.md) |
| OP-011 | `CreateContext` | `WebContextService` | [Docs](operations/web-context-createcontext.md) |
| OP-012 | `QueueImage` | `ImagingService` | [Docs](operations/imaging-queueimage.md) |
| OP-013 | `ReserveImageId` | `ImagingService` | [Docs](operations/imaging-reserveimageid.md) |
| OP-014 | `SendFax` | `FaxService` | [Docs](operations/fax-sendfax.md) |
| OP-015 | `IsAuthorized` | `Security.SecurityService` | [Docs](operations/security-isauthorized.md) |
| OP-016 | `IsAuthorized2` | `Security.SecurityService` | [Docs](operations/security-isauthorized2.md) |
| OP-017 | `GetUser` | `Security.SecurityService` | [Docs](operations/security-getuser.md) |
| OP-018 | `GetSaifUserByUserId` | `Security.SecurityService` | [Docs](operations/security-getsaifuserbyuserid.md) |
| OP-019 | `GetSaifUserByEmployeeId` | `Security.SecurityService` | [Docs](operations/security-getsaifuserbyemployeeid.md) |
| OP-020 | `GetUserIdForEmployeeId` | `Security.SecurityService` | [Docs](operations/security-getuseridforemployeeid.md) |
| OP-021 | `GetExternalUser` | `Security.SecurityService` | [Docs](operations/security-getexternaluser.md) |
| OP-022 | `GetExternalUserByCustomerId` | `Security.SecurityService` | [Docs](operations/security-getexternaluserbycustomerid.md) |
| OP-023 | `GetInjuredWorkerUserByCustomerId` | `Security.SecurityService` | [Docs](operations/security-getinjuredworkeruserbycustomerid.md) |
| OP-024 | `GetUsersByGroup` | `Security.SecurityService` | [Docs](operations/security-getusersbygroup.md) |

## Related documentation
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Activation and hosting](activation-hosting.md)
- [Operations](operations.md)
- [Faults and error pipeline](faults.md)
- [Authentication and authorization](authentication-authorization.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Data model](data-model.md)
- [Operational runbook](operational-runbook.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- src/WCF/SAIF.Services.WCF.Host/Global.asax.cs
- src/WCF/SAIF.Services.WCF.Host/WCF.csproj
